// 默认推荐使用import type Foo from '...'
import type { Foo } from 'Foo';
import type Bar from 'Bar';
export type T = Foo;
export const x: Bar = 1;

import type { Foo } from 'Foo';
import type Bar from 'Bar';
type T = Foo;
const x: Bar = 1;

import type Foo from 'foo';
let foo: Foo;
type Bar = Foo;
interface Baz {
  foo: Foo;
}
function fn(a: Foo): Foo {}

import type { A} from 'foo';
import { B } from 'foo';
let foo: A;
let bar: B;
import type { A as a, B as b } from 'foo';
let foo: a;
let bar: b;

import type Foo from 'foo';
type Bar = typeof Foo; // TSTypeQuery

import foo from 'foo';
type Bar = foo.Bar; // TSQualifiedName

import foo from 'foo';
type Baz = (typeof foo.bar)['Baz']; // TSQualifiedName & TSTypeQuery

import type * as A from 'foo';
let foo: A.Foo;

import type A from 'foo';
import { B } from 'foo';
let foo: A;
let bar: B;

import type A from 'foo';
let foo: A;

import type { A} from 'foo';
import { B } from 'foo';
const foo: A = B();

import type { A, C } from 'foo';
import { B } from 'foo';
const foo: A = B();
let bar: C;

import type { A, C, D } from 'foo';
import { B } from 'foo';
const foo: A = B();
type T = { bar: C; baz: D };

import type { C, D } from 'foo';
import type A from 'foo';
import { B } from 'foo';
B();
type T = { foo: A; bar: C; baz: D };

import type A from 'foo';
import { B } from 'foo';
B();
type T = A;
